Skip to main content

Mysql & Mariadb

Installation du Serveur MariaDB​

sudo apt install mariadb-server

Par défaut, le mot de passe administrateur MySQL/MariaDB sera le même que celui de votre utilisateur système. Pour personnaliser la sécurisation de notre base de données, voici la commande à exécuter :

  • mysql_secure_installation

    Change the root password [Y/n] => y // changez le mot de passe
    New password // Entrez votre mot de passe « root »
    Remove anonymous users [Y/n] => y // Désactivez ensuite les connexions anonymes
    Disallow root login remotely? [Y/n] => y // Désactivez la connexion en « root » depuis une connexion distante
    Remove test database and access to it? [Y/n] => y // effacer la base de données de test créée par défaut
    Reload privilege tables now? [Y/n] => y // Il reste à charger les nouveaux paramètres

  • Pour tester l'accès à notre base de données, voici la commande à utiliser dans notre terminal :

mysql -u root –p
show databases
exit

Percona-Toolkit Installation​

Percona Toolkit, largement utilisé dans les environnements MySQL et Percona Server, est une collection d'outils qui aide les administrateurs de bases de données à gérer leurs tâches quotidiennes. Ces outils offrent aux utilisateurs flexibilité et contrôle en matière de performances, de fiabilité et de maintenance.

sudo apt install percona-toolkit

  • pt-show-grants

    Copier la ligne mysql et accordez les autorisations à l'utilisateur student.

GRANT ALL PRIVILEGES ON *.* TO `student`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION;

Désormais, student peut se connecter directement à MySQL sans avoir besoin d'être root.**

Mysql socket & reseau​

Note : Vous pouvez basculer vers l'utilisateur MySQL en utilisant la commande suivante :

su – mysql -s /bin/bash

mysql : Se connecte directement en utilisant le socket.
mysql -h localhost : Se connecte via le réseau.

mysql -u test -p		# Se connecter avec le nom d'utilisateur test, entrer le mot de passe (socket)
mysql -u test -h localhost -p # Se connecter avec le nom d'utilisateur test, entrer le mot de passe (réseau)

Création du user et database​

Nous avons créé un utilisateur nommé "Incubator" et avons également créé une base de données nommée "incubator". Ensuite, nous avons accordé à l'utilisateur "incubator" tous les privilèges dans la base de données "incubator".

CREATE USER 'incubator'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE incubator;
GRANT ALL PRIVILEGES ON incubator.* TO 'incubator'@'localhost';

Sauvegarder Les Databases​

mysqldump pingpong > dump.sql  #Pour sauvegarder
mysql < dump.sql # Pour restaurer
sftp student@fdfkdfdf.
get dump.sql # Téléchargez ce fichier via SSH

Nous pouvons automatiser le processus de sauvegarde des données MySQL avec un script simple de trois manières :

Exemple de fichier backup.sh :

#!/bin/bash

# Spécifiez les informations de connexion à la base de données
DB_NAME="pingpong"

# Spécifiez le répertoire de sauvegarde
BACKUP_DIR="/home/student/backup"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"

# Commande pour effectuer la sauvegarde et la compression
mysqldump -A | gzip > $BACKUP_FILE

# Supprimer les sauvegardes de plus de 10 jours
find -name '*.sql.gz' -mtime +10 -delete-

# Vérifiez si la sauvegarde et la compression ont réussi
if [ $? -eq 0 ]; then
echo "Sauvegarde de toutes les bases de données effectuée avec succès dans $BACKUP_FILE"
else
echo "Échec de la sauvegarde et de la compression"
exit 1
fi
  • Ajouter une tâche cron.
    S'exécute toutes les heures
    0 * * * * /chemin/vers/votre/backup.sh